/*
 	проверка работы разработанной структуры TreeSet
 */


package lab1;

import java.util.Iterator;
import java.util.NoSuchElementException;

public class MyMain {

	public static void main(String args[ ]) 
	{ 
//System.out.println( "Welcome to the world of Java" ); 
		MyTreeSet myTreeSet1=new MyTreeSet();		
		
		//проверка isEmpty
		System.out.println("Является ли дерево пустым: " + myTreeSet1.isEmpty() + "\n"); 
		
		//проверка remove
		System.out.println("Удаляем элемент с номером -1");
		try {
			System.out.println(myTreeSet1.remove(-1));
			System.out.println("");		
		}
		catch (NullPointerException e) {
			System.out.println("Ошибка - входное значение не может быть равно null" + e);
		}
		
		//вносим данные в дерево (add)
		System.out.println("Успешно ли внесены узлы:"); 
		try {
			System.out.println("2 - "+myTreeSet1.add(2)); 
			System.out.println("-1 - "+myTreeSet1.add(-1)); 
			System.out.println("4 - "+myTreeSet1.add(4));
			System.out.println("5 - "+myTreeSet1.add(5));
			System.out.println("3 - "+myTreeSet1.add(3));
			System.out.println("-1 - "+myTreeSet1.add(-1));
			System.out.println("0 - "+myTreeSet1.add(0));	
			System.out.println("");		
		}
		catch (NullPointerException e) {
			System.out.println("Ошибка - входное значение не может быть равно null" + e);
		}
		
		//проверка isEmpty
		System.out.println("Является ли дерево пустым: " + myTreeSet1.isEmpty() + "\n"); 		

		//проверка size
		System.out.println("Количество элементов в дереве = " + myTreeSet1.size() + "\n"); 
		
		//проверка contains 
		System.out.println("Содержит ли наше дерево числа от 0 до 5:"); 
		try {
			for (int i=0;i<6;i++) {
				System.out.println(i+" - "+myTreeSet1.contains(i)); 
			}
			System.out.println("");
		}
		catch (NullPointerException e) {
			System.out.println("Ошибка - входное значение не может быть равно null" + e);
		}
		
		//проверка ToString
		System.out.println("Вывод дерева в виде строки: " + myTreeSet1.toString() + "\n");
		
		//проверка remove
		System.out.println("Удаляем элемент с номером -1");
		try {
			System.out.println(myTreeSet1.remove(-1));
		}
		catch (NullPointerException e) {
			System.out.println("Ошибка - входное значение не может быть равно null" + e);
		}
		
		//проверка ToString
		System.out.println("Вывод дерева в виде строки: " + myTreeSet1.toString() + "\n");		
		
		//проверка iterator
		System.out.println("Вывод элементов с помощью итератора:"); 
		Iterator<Integer> iter=myTreeSet1.iterator();
		try {
			while (iter.hasNext()) {
				System.out.println(iter.next()); 
			}
			System.out.println("");
		}
		catch (NoSuchElementException e) {
			System.out.println("Ошибка итератора - выход за пределы дерева" + e);
		}
		
	
		
		//проверка clear
		System.out.println("Очистка дерева."); 
		myTreeSet1.clear();
		System.out.println("Является ли дерево пустым: " + myTreeSet1.isEmpty() + "\n");
			

		
		
     } 
 
}
